Шаг 9. Просматриваем последние закоммиченные изменения

В прошлых шагах мы рассмотрели команду git diff, которая позволяет сравнивать объекты Git и сторонние файлы. Если говорить про коммиты, то нам сначала нужно их вывести, чтобы получить хэши, а уже затем использовать вместе с командой git diff. Но это не всегда удобно.

Допустим, нам нужно посмотреть изменения в последнем коммите. В таком случае лучше использовать команду git show — она позволяет вывести подробную информацию об одном или нескольких объектах сразу. К объектам относятся blob-файлы, коммиты, теги и так далее.

По умолчанию git show используется для вывода изменений, сделанных в последнем коммите, на который показывает относительный указатель HEAD. Также она отображает информацию о коммите. То есть данная команда — связка двух других команд: git log -1 и git diff HEAD~1 HEAD~0. Согласитесь, удобнее прописать одну команду, чем две подряд.

Давайте введём команду git show и посмотрим, что выведет Git.

Введена команда git show
Введена команда git show

Git сначала вывел подробную информацию о коммите, а затем изменения. Но если разобраться детальнее, то он просто выполнил сравнение предыдущего коммита с коммитом, на который указывает HEAD.

Давайте проверим. Сначала введём git log -1, а затем git diff HEAD~1 HEAD~0.

Введена команда git log -1 и git diff HEAD~1 HEAD~0
Введена команда git log -1 и git diff HEAD~1 HEAD~0

Что и требовалась доказать.

Команда git show также позволяет выбирать диапазон коммитов и использовать опцию --oneline, которая выводит информацию о коммите в укороченном формате.

Чтобы выбрать диапазон коммитов, воспользуемся командой git show HEAD~2..HEAD~0 --oneline. Мы указали, что нужно выбрать два последних коммита, а затем их вывести вместе с укороченной информацией о коммите.

Возможно, у вас возникнет вопрос: почему два, а не три? Первый коммит, то есть HEAD~2, не будет выводиться — только HEAD~1 и HEAD~0.

Вместо относительного указателя HEAD можно было бы использовать хэши, но для этого нам пришлось бы сначала вывести их, а уже потом только прописать в саму команду git show. Но если вы забыли историю, то так или иначе это делать всё равно придётся.

Введена команда git show HEAD~2..HEAD~0 --oneline
Введена команда git show HEAD~2.HEAD~0 --oneline

Git вывел информацию сразу о двух последних коммитах в укороченном формате, а также изменения.

Такую команду хоть и не часто, но приходиться использовать — зачастую лишь для того, чтобы вспомнить изменения в последнем коммите.